package com.sean.common.utils;

import java.io.File;
import java.util.Date;
import java.util.UUID;

/**
 * 文件操作工具类.
 * @author XinWang
 *
 */
public class FileUtils extends org.apache.commons.io.FileUtils {

	/**
	 * 获取稿件附件存放路径.
	 * 
	 * @param fileName
	 * @param doccreateDate
	 * @return
	 */
	public static String getDocFileDir(Date docCreateDate) {
		return DateUtils.convertToFormat(docCreateDate, "/yyyyMM/dd/");
	}

	/**
	 * 获取扩展名 包含".".
	 * 
	 * @param file
	 * @return
	 */
	public static String getExtention(File file) {
		return getExtention(file.getName());
	}

	/**
	 * 获取扩展名 包含".".
	 * 
	 * @param fileName
	 * @return
	 */
	public static String getExtention(String fileName) {
		return fileName.substring(fileName.lastIndexOf(".")).toLowerCase();
	}

	/**
	 * 获取文件名,不含"."以及扩展名
	 * 
	 * @param file
	 * @return
	 */
	public static String getOnlyName(File file) {
		return getOnlyName(file.getName());
	}

	/**
	 * 获取文件名,不含"."以及扩展名
	 * 
	 * @param fileName
	 * @return
	 */
	public static String getOnlyName(String fileName) {
		return fileName.substring(0, fileName.lastIndexOf("."));
	}

	/**
	 * 获取文件名上加入标识的文件路径
	 * 
	 * @param resFile
	 * @param tagStr
	 * @return
	 */
	public static File getSuffixFile(File resFile, String tagStr) {
		String fileName = getOnlyName(resFile) + tagStr + getExtention(resFile);
		return new File(resFile.getParentFile(), fileName);
	}

	/**
	 * 获取文件名上加入标识的文件路径
	 * 
	 * @param resFile
	 * @param tagStr
	 * @return
	 */
	public static String getSuffixFile(String resFile, String tagStr) {
		String fileName = getOnlyName(resFile) + tagStr + getExtention(resFile);
		return fileName;
	}

	/**
	 * 获取随机文件名字符.
	 * 
	 * @return
	 */
	public static String getNewFileId() {
		return UUID.randomUUID().toString().replaceAll("-", "");
	}

	/**
	 * 获取新文件名.
	 * @param fileName
	 * @return
	 */
	public static String getNewFileName(String fileName) {
		return getNewFileId() + getExtention(fileName);
	}
}
